package com.only4play.practice.common.enums.pay;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.only4play.codegen.support.constants.BaseEnum;

import java.util.Optional;

/**
 * @author mdy
 * * @date 2024/9/27
 */
public enum ReconcileMistakeType implements BaseEnum<ReconcileMistakeType> {

    CHANNEL_MISS(1,"渠道漏单"), // 渠道不存在该订单
    PLATFORM_MISS(2,"平台漏单"), // 平台不存在该订单
    PLATFORM_SHORT_STATUS_MISMATCH(3,"平台短款，状态不符"), // 渠道支付成功，平台支付不成功（比较常见）
    PLATFORM_SHORT_CASH_MISMATCH(4,"平台短款，金额不符"), // 平台需支付金额比渠道实际支付金额少（基本不会出现）
    PLATFORM_OVER_CASH_MISMATCH(5,"平台长款,金额不符"), // 渠道实际支付金额比平台需支付金额少
    PLATFORM_OVER_STATUS_MISMATCH(6,"平台长款,状态不符"), // 平台支付成功，渠道支付不成功（基本不会出现）
    FEE_MISMATCH(7,"手续费不匹配");

    ReconcileMistakeType(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    @EnumValue
    private Integer code;
    private String name;

    @Override
    public Integer getCode() {
        return this.code;
    }

    @Override
    public String getName() {
        return this.name;
    }

    public static Optional<ReconcileMistakeType> of(Integer code) {
        return Optional.ofNullable(BaseEnum.parseByCode(ReconcileMistakeType.class, code));
    }

}
